package com.zl.quickdoc.model;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.type.Type;
import com.zl.quickdoc.resolver.converter.AbstractJavaDocTag;

/**
 * 字段属性
 * @author zhouliang
 *
 */
public class ApiField {
    
    @JsonIgnore
    private List<AbstractJavaDocTag<?>> docTags;
    
    @JsonIgnore
    private CompilationUnit javaUnit;
    
    @JsonIgnore
    private Type paramType;
    
    private boolean anonymousFlag=false;
    
    private boolean simpleValueFlag=false;
    
    private boolean mergeObjFlag=false;
    
    private String className;
    
    private String simpleName;
    
    private boolean hiddenFlag=false;
    
    /** 属性名 */
    private String name;
    
    /** 属性名 */
    private String factName;
    
    /** 标题 */
    private String title;
    
    /** 类型*/
    private String showType;
    
    /** 实际类型 */
    private String factType;
    
    /** 是否必填 */
    private boolean require=false;
    
    /** 描述 */
    private String description;
    
    /** 是否路径参数 */
    private boolean pathFlag=false;
    
    /** 示例值 */
    private String defaultValue;

    /** 子属性 */
    private List<ApiField> children;
    
    public List<AbstractJavaDocTag<?>> getDocTags() {
        return docTags;
    }
    public void setDocTags(List<AbstractJavaDocTag<?>> docTags) {
        this.docTags = docTags;
    }
    public CompilationUnit getJavaUnit() {
        return javaUnit;
    }
    public void setJavaUnit(CompilationUnit javaUnit) {
        this.javaUnit = javaUnit;
    }
    public Type getParamType() {
        return paramType;
    }
    public void setParamType(Type paramType) {
        this.paramType = paramType;
    }
    public boolean getAnonymousFlag() {
        return anonymousFlag;
    }
    public void setAnonymousFlag(boolean anonymousFlag) {
        this.anonymousFlag = anonymousFlag;
    }
    public boolean getSimpleValueFlag() {
        return simpleValueFlag;
    }
    public void setSimpleValueFlag(boolean simpleValueFlag) {
        this.simpleValueFlag = simpleValueFlag;
    }
    public boolean getMergeObjFlag() {
        return mergeObjFlag;
    }
    public void setMergeObjFlag(boolean mergeObjFlag) {
        this.mergeObjFlag = mergeObjFlag;
    }
    public String getClassName() {
        return className;
    }
    public void setClassName(String className) {
        this.className = className;
    }
    public String getSimpleName() {
        return simpleName;
    }
    public void setSimpleName(String simpleName) {
        this.simpleName = simpleName;
    }
    public boolean getHiddenFlag() {
        return hiddenFlag;
    }
    public void setHiddenFlag(boolean hiddenFlag) {
        this.hiddenFlag = hiddenFlag;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getFactName() {
        return factName;
    }
    public void setFactName(String factName) {
        this.factName = factName;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getShowType() {
        return showType;
    }
    public void setShowType(String showType) {
        this.showType = showType;
    }
    public String getFactType() {
        return factType;
    }
    public void setFactType(String factType) {
        this.factType = factType;
    }
    public boolean getRequire() {
        return require;
    }
    public void setRequire(boolean require) {
        this.require = require;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public boolean getPathFlag() {
        return pathFlag;
    }
    public void setPathFlag(boolean pathFlag) {
        this.pathFlag = pathFlag;
    }
    public String getDefaultValue() {
        return defaultValue;
    }
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }
    public List<ApiField> getChildren() {
        return children;
    }
    public void setChildren(List<ApiField> children) {
        this.children = children;
    }
}
